package com.mage;

import com.mage.model.Product;
import freemarker.template.Configuration;
import freemarker.template.Template;

import java.io.File;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Map;

/**
 *  第一步：创建配置对象
 *  第二步：设置模板加载路径
 *  第三步：设置输出编码
 *  第四步：获取模板
 *  第五步：构建输出数据
 *  第六步：创建一个输出流
 *  第七步：模板+数据=输出
 *  第八步：关闭流
 */
public class FreemarkerQuickstart {

    public static void main(String[] args) throws Exception {
        // 第一步：创建配置对象
        Configuration configuration = new Configuration(Configuration.VERSION_2_3_29);
        // 第二步：设置模板加载路径
        configuration.setDirectoryForTemplateLoading(new File("src/main/templates"));
        // 第三步：设置输出编码
        configuration.setDefaultEncoding("utf-8");
        // 第四步：获取模板
        Template template = configuration.getTemplate("index.ftl");
        // 第五步：构建输出数据
        Map<String, Object> dataMap = new HashMap<>();
        dataMap.put("userName", "Big Joe");
        dataMap.put("latestProduct", new Product("products/greenmouse.html", "green mouse"));
        // 第六步：创建一个输出流
        FileWriter out = new FileWriter(new File("src/main/out/index.html"));
        // 第七步：模板+数据=输出
        template.process(dataMap, out);
        // 第八步：关闭流
        out.close();
    }
}
